#!/bin/bash

# 检查各个组件需要用的端口，是否被占用了。
# 放在clear_env后面执行，以免永远无法执行到clear_env（停止组件服务后，其端口也就不被占用了）
check_hosts_port()
{
  # 检查 pgsql 的端口
  check_port "$HRS_PGSQL_HOST" "$HRS_PGSQL_PORT"
  # 检查 tomcat 的端口
  check_port "$HRS_TOMCAT_HOST" "$HRS_TOMCAT_PORT"

  if [ "$HYRENPRODUCT_NAME" = "DXG" ]; then
    # 检查 kafka 的端口
    check_port "$HRS_KAFKA_HOSTS" "$HRS_KAFKA_listenersPort"
    # 检查 zookeeper 的端口
    check_port "$HRS_ZOOKEEPER_HOSTS" "$HRS_ZOOKEEPER_PORT"
    check_port "$HRS_ZOOKEEPER_HOSTS" "$HRS_ZOOKEEPER_clientPort"
  fi
  echo_info "Check host PORT done."
}

# 卸载上次的安装，包括停止服务、删除所有文件
init_env()
{
  echo_start "$1 ... ..."

  # 检查各个组件需要用的端口，是否被占用了。
  confirm_operate "Check host PORT"
  if [ $? -eq 0 ]; then
    check_hosts_port
  fi

  # 删除所有文件
  #if [ -d $HYRENSOFT_HOME ]; then rm -rf $HYRENSOFT_HOME; fi
  mkdir_check $HYRENSOFT_HOME
  #if [ -d $HYRENDATA_HOME ]; then rm -rf $HYRENDATA_HOME; fi
  #mkdir_check $HYRENDATA_HOME
  local value_arr=($HYREN_ALLHOSTS)
  for i in ${value_arr[@]}; do
    # 检查各主机上海云用户下是否已经创建了HRSDATA软链接，且指向的目录
    ssh -o StrictHostKeyChecking=no $i "if [ ! -h $HYRENDATA_HOME ]; then exit 1; fi" || { die "[$HYRENDATA_HOME] is not symbolic link on $i. Please create it by manually and chown to $HYREN_USER ! "; }
    ssh -o StrictHostKeyChecking=no $i "if [ \"$HYRENDATA_HOME\" != \"/home/${HYREN_USER}/HRSDATA\" ]; then exit 1; fi" || { die "[$HYRENDATA_HOME] must be /home/${HYREN_USER}/HRSDATA ! "; }
    # 创建安装过程中使用的临时目录
    ssh -o StrictHostKeyChecking=no $i "if [ ! -d $HYRENTMP_HOME ]; then mkdir -p $HYRENTMP_HOME; fi"
    # 把海云软件主目录和数据主目录添加到海云用户的环境变量中
    ssh -o StrictHostKeyChecking=no $i 'bash -s' < $XDIR/util/func_rmot_setprofile.sh "HYRENSOFT_HOME" "$HYRENSOFT_HOME" "$HYREN_USER"
    ssh -o StrictHostKeyChecking=no $i 'bash -s' < $XDIR/util/func_rmot_setprofile.sh "HYRENDATA_HOME" "$HYRENDATA_HOME" "$HYREN_USER"
  done
  su - $HYREN_USER -c "mkdir -p $HYREN_AGENTTMP_HOME"

  echo_passed "$1 done."
}

